namespace SmartMathLibrary
{
    /// <summary>
    /// Interface to implement an Interval class.
    /// </summary>
    public interface IInterval
    {
        /// <summary>
        /// Gets or sets the start of the interval.
        /// </summary>
        /// <value>The start of the interval.</value>
        double Start { get; set; }

        /// <summary>
        /// Gets or sets the end of the interval.
        /// </summary>
        /// <value>The end of the interval.</value>
        double End { get; set; }

        /// <summary>
        /// Determines whether the specified value [is in interval].
        /// </summary>
        /// <param name="value">The value to check.</param>
        /// <returns>
        /// 	<c>true</c> if [the specified value] [is in interval]; otherwise, <c>false</c>.
        /// </returns>
        bool IsInInterval(double value);

        /// <summary>
        /// Determines whether all array values [are in the interval].
        /// </summary>
        /// <param name="value">The value array.</param>
        /// <returns>
        /// 	<c>true</c> if all array values [are in the interval]; otherwise, <c>false</c>.
        /// </returns>
        bool IsInInterval(double[] value);
    }
}